import cors from 'cors'
import express from 'express'
import { marked } from 'marked'
import { themeMap } from '../config/theme.js'
import { renderMarkdown } from '../utils/mdrender.js'

const app = express()
const port = process.env.PORT || 3000

// 启用 JSON 解析和 CORS
app.use(express.json({ limit: `5mb` }))
app.use(cors())

// 创建 Markdown 渲染 API 端点
app.post(`/api/render`, (req, res) => {
  try {
    const { content, options } = req.body

    if (!content || typeof content !== `string`) {
      return res.status(400).json({ error: `必须提供 Markdown 内容` })
    }

    // 调用渲染函数
    const html = renderMarkdown(content, options)

    // 返回渲染结果
    res.json({ html })
  }
  catch (error) {
    console.error(`渲染错误:`, error)
    res.status(500).json({ error: `渲染处理失败`, message: error.message })
  }
})

// 获取可用主题列表的端点
app.get(`/api/themes`, (req, res) => {
  const themes = Object.keys(themeMap)
  res.json({ themes })
})

// 启动服务器
app.listen(port, () => {
  console.log(`Markdown 渲染 API 运行在端口 ${port}`)
})
